<html>
<head>
<title>required/optional CSS pseudoclasses part 4</title>
<style>
 button:optional { background: lime; }
 input:optional { background: lime; }
 select:optional { background: lime; }
 textarea:optional { background: lime; }
 button { background: red; }
 input { background: red; }
 select { background: red; }
 textarea { background: red; }
 button:required { background: red; }
 input:required { background: red; }
 select:required { background: red; }
 textarea:required { background: red; }
</style>
<script language="JavaScript" type="text/javascript">
    function log(message) {
        document.getElementById("console").innerHTML += "<li>"+message+"</li>";
    }

    function test() {
        if (window.testRunner)
            testRunner.dumpAsText();

        v = document.getElementsByName("victim");

        for (i = 0; i < v.length; i++)
            if (document.defaultView.getComputedStyle(v[i], null).getPropertyValue('background-color') == "rgb(0, 255, 0)")
                log("SUCCESS");
            else
                log("FAILURE");
    }
</script>
</head>
<body onload="test()">
<p>All controls should have a green background.</p>
<button type="button" name="victim">Lorem ipsum</button>
<input name="victim" disabled/>
<input type="button" name="victim"/>
<select name="victim"></select>
<textarea name="victim"></textarea>
<hr>
<ol id="console"></ol>
</body>
</html>
